#ifndef STUMYSQL_H
#define STUMYSQL_H

#include <QMessageBox>
#include <QObject>
#include <QSql>
#include <QSqlQuery>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
struct stuInfo //学生表数据
{
    int id;
    QString name;
    quint8 age;
    quint32 grade;
    quint32 uiclass;
    quint32 studentid;
    QString phone;
    QString wechat;
};
struct UserInfo //用户表数据
{
    QString username;
    QString password;
    QString aut;
};
class stumySql : public QObject
{
    Q_OBJECT
public:
    static stumySql *ptrstumysql;  //调用数据库连接的指针
    static stumySql *getinstance() //承接唯一实例,也就只要数据库没关就能一直用
    {
        if (nullptr == ptrstumysql) {
            ptrstumysql = new stumySql;
        }
        return ptrstumysql;
    }
    explicit stumySql(QObject *parent = nullptr);

    void init();

    //统计所有学生数量
    quint32 getStuCnt();

    //查询第几页学生数据,页数从0开始
    QList<stuInfo> getPageStu(quint32 page, quint32 uiCnt);

    //增加学生
    bool addstu(stuInfo info);

    //删除学生
    bool delStu(int id);

    //清空学生表
    bool clearStuTable();

    //修改学生信息
    bool UpdateStuInfo(stuInfo info);

    //统计用户数量
    quint32 getUserCnt();

    //查询第几页用户数据,页数从0开始
    QList<UserInfo> getPageUser(quint32 page, quint32 uiCnt);

    //查询所有用户
    QList<UserInfo> getAllUser();

    //以用户名查询密码
    QString Selectpassword(QString strUsername);
    //查询用户名是否存在
    bool isExist(QString strUser);

    //更新用户信息
    bool updataUser(UserInfo info);

    //添加单个用户
    bool AddUser(UserInfo info);

    //删除单个用户
    bool delUser(QString strUsername);

signals:

private:
    QSqlDatabase db;
};

#endif // STUMYSQL_H
